#ifndef __SHADER_MANAGER_GLES_H__
#define __SHADER_MANAGER_GLES_H__

#pragma once

#include "ShaderProgramManager.h"
#include "ShaderProgramGLES.h"

namespace Nezha
{

	class ShaderManagerGLES : public ShaderProgramManager
	{
	public:
		ShaderManagerGLES();
		virtual ~ShaderManagerGLES();

		virtual ShaderProgramPtr findShader(const _string& name);

		virtual ShaderProgramPtr createShader(const _string& source, ShaderProgram::Language lang);

		virtual ShaderProgramPtr createShader(DefaultShaderType dst);

		virtual void removeAll();

	protected:
		virtual void _garbageDispose();

	private:
		typedef PMap<_string, ShaderProgramPtr, _NzStrLess> ProgramNameMap;

		ProgramNameMap mPrograms;
	};

}//end namespace Nezha

#endif //end __SHADER_MANAGER_GLES_H__